<!DOCTYPE html>
<!-- saved from url=(0028)http://blog.kymjs.com/about/ -->
<html class=" js no-touch cssanimations csstransitions" lang="en" version="g42dymwpi--nx"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>张涛 KymJS</title>

<!-- Asynchronous Google Analytics snippet -->
<div class="fit-vids-style">­<style>               .fluid-width-video-wrapper {                 width: 100%;                              position: relative;                       padding: 0;                            }                                                                                   .fluid-width-video-wrapper iframe,        .fluid-width-video-wrapper object,        .fluid-width-video-wrapper embed {           position: absolute;                       top: 0;                                   left: 0;                                  width: 100%;                              height: 100%;                          }                                       </style></div><script src="./about_files/hm.js"></script><script async="" src="./about_files/analytics.js"></script><script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-50556500-1', '');
  ga('send', 'pageview');

</script>


<meta name="description" content="国内优秀的富有开源精神的移动应用开发者">





<!-- Open Graph -->
<meta property="og:locale" content="en_US">
<meta property="og:type" content="article">
<meta property="og:title" content="张涛">
<meta property="og:description" content="国内优秀的富有开源精神的移动应用开发者">
<meta property="og:url" content="/about/index.html">
<meta property="og:site_name" content="KymJS">





<link rel="canonical" href="./about_files/about.html">
<link href="http://blog.kymjs.com/feed.xml" type="application/atom+xml" rel="alternate" title="KymJS Feed">


<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- For all browsers -->
<link rel="stylesheet" href="http://blog.kymjs.com/assets/css/main.min.css">
<!-- Webfonts -->
<link href="./about_files/css" rel="stylesheet" type="text/css">

<meta http-equiv="cleartype" content="on">

<!-- Load Modernizr -->
<script src="./about_files/modernizr-2.6.2.custom.min.js"></script>

<!-- Icons -->
<!-- 16x16 -->
<link rel="shortcut icon" href="http://blog.kymjs.com/favicon.ico">
<!-- 32x32 -->
<link rel="shortcut icon" href="http://blog.kymjs.com/favicon.ico">
<!-- 57x57 (precomposed) for iPhone 3GS, pre-2011 iPod Touch and older Android devices -->
<link rel="apple-touch-icon-precomposed" href="http://blog.kymjs.com/images/apple-touch-icon-precomposed.png">
<!-- 72x72 (precomposed) for 1st generation iPad, iPad 2 and iPad mini -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="http://blog.kymjs.com/images/apple-touch-icon-72x72-precomposed.png">
<!-- 114x114 (precomposed) for iPhone 4, 4S, 5 and post-2011 iPod Touch -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="http://blog.kymjs.com/images/apple-touch-icon-114x114-precomposed.png">
<!-- 144x144 (precomposed) for iPad 3rd and 4th generation -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://blog.kymjs.com/images/apple-touch-icon-144x144-precomposed.png">




<style type="text/css">body {background-image:url(/images/witewall_3.png);}</style>


<style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Hover_Arrow {position: absolute; width: 15px; height: 11px; cursor: pointer}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 5px 0px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 1px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; color: #666666}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: .7em}
.MathJax_MenuRadioCheck.RTL {right: .7em; left: auto}
.MathJax_MenuLabel {padding: 1px 2em 3px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #DDDDDD; margin: 4px 3px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: #606872; color: white}
.MathJax_Menu_Close {position: absolute; width: 31px; height: 31px; top: -15px; left: -15px}
</style><style type="text/css">.MathJax_Preview .MJXc-math {color: inherit!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1em; bottom: 1.5em; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><style type="text/css">.MJXc-script {font-size: .8em}
.MJXc-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXc-bold {font-weight: bold}
.MJXc-italic {font-style: italic}
.MJXc-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXc-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXc-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXc-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXc-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXc-largeop {font-size: 150%}
.MJXc-largeop.MJXc-int {vertical-align: -.2em}
.MJXc-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXc-display {display: block; text-align: center; margin: 1em 0}
.MJXc-math span {display: inline-block}
.MJXc-box {display: block!important; text-align: center}
.MJXc-box:after {content: " "}
.MJXc-rule {display: block!important; margin-top: .1em}
.MJXc-char {display: block!important}
.MJXc-mo {margin: 0 .15em}
.MJXc-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXc-denom {display: inline-table!important; width: 100%}
.MJXc-denom > * {display: table-row!important}
.MJXc-surd {vertical-align: top}
.MJXc-surd > * {display: block!important}
.MJXc-script-box > *  {display: table!important; height: 50%}
.MJXc-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXc-script-box > *:last-child > * {vertical-align: bottom}
.MJXc-script-box > * > * > * {display: block!important}
.MJXc-mphantom {visibility: hidden}
.MJXc-munderover {display: inline-table!important}
.MJXc-over {display: inline-block!important; text-align: center}
.MJXc-over > * {display: block!important}
.MJXc-munderover > * {display: table-row!important}
.MJXc-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXc-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXc-mtr {display: table-row!important}
.MJXc-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXc-mtr > .MJXc-mtd:first-child {padding-left: 0}
.MJXc-mtr:first-child > .MJXc-mtd {padding-top: 0}
.MJXc-mlabeledtr {display: table-row!important}
.MJXc-mlabeledtr > .MJXc-mtd:first-child {padding-left: 0}
.MJXc-mlabeledtr:first-child > .MJXc-mtd {padding-top: 0}
.MJXc-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXc-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXc-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXc-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXc-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXc-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXc-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXc-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXc-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXc-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXc-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_CHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style></head>

<body id="page"><div id="MathJax_Message" style="display: none;"></div>

<!--[if lt IE 9]><div class="upgrade"><strong><a href="http://whatbrowser.org/">Your browser is quite old!</strong> Why not upgrade to a different browser to better enjoy this site?</a></div><![endif]-->
<nav id="dl-menu" class="dl-menuwrapper" role="navigation">
	<button class="dl-trigger">Open Menu</button>
	<ul class="dl-menu">
		<li><a href="http://blog.kymjs.com/"><i class="icon-home"></i>主页</a></li>
		<li>
			<a href="http://blog.kymjs.com/about/#"><i class="icon-user"></i>关于</a>
			<ul class="dl-submenu"><li class="dl-back"><a href="http://blog.kymjs.com/about/#">返回</a></li>
				<li>
					<img src="./about_files/kymjs.png" alt="张涛 photo" class="author-photo">
					<h4>张涛</h4>
					<p>无论何时，<br>请保持学者的谦逊与宽容</p>
				</li>
				<li><a href="./about_files/about.html">我的详细资料</a></li>
				<li>
					<a href="mailto:kymjs@foxmail.com"><i class="icon-envelope"></i> Email</a>
				</li>
				 <li>
					<a href="http://qm.qq.com/cgi-bin/qm/qr?k=4oEItdBXGTZj7QAa7v04kwGrVZ7uX2cF"><i class="icon-twitter"></i> QQ </a>
				</li>
				
				
				
				
				<li>
					<a href="http://github.com/kymjs"><i class="icon-github"></i> GitHub</a>
				</li>
				
				
				
				
			</ul><!-- /.dl-submenu -->
		</li>
		<li>
			<a href="http://blog.kymjs.com/about/#"><i class="icon-star"></i>分类阅读</a>
			<ul class="dl-submenu"><li class="dl-back"><a href="http://blog.kymjs.com/about/#">返回</a></li>
				<li><a href="http://blog.kymjs.com/archive/"><i class="icon-arrow-right"></i>文章列表</a></li>
				<li><a href="http://blog.kymjs.com/tags/"><i class="icon-tags"></i>标签列表</a></li>
				<li><a href="http://blog.kymjs.com/categories/"><i class="icon-folder-open"></i>分类列表</a></li>
			</ul>
		</li>
		<li><a href="http://www.kymjs.com/">开源实验室</a></li><li><a href="http://github.com/kymjs">我的GitHub</a></li>
	</ul><!-- /.dl-menu -->
</nav><!-- /.dl-menuwrapper -->




<div id="main" role="main">
  <article class="entry">
    <header class="header-title">
      <div class="header-title-wrap">
          <h1>张涛</h1>
          <h2>国内优秀的富有开源精神的移动应用开发者</h2>
      </div><!-- /.header-title-wrap -->
    </header>
    <div class="entry-content">
      <p><img src="./about_files/kymjs.png" alt="张涛"></p>

<h2 id="section">介绍</h2>
<hr>
<p>张涛，网名kymjs，在深圳的湖北人。<a href="http://www.oschina.net/">开源中国</a>移动开发工程师，《<a href="https://github.com/kymjs/KJFrameForAndroid">KJFrameForAndroid</a>》开发框架作者，<a href="http://www.kymjs.com/">开源实验室</a>创始人，<a href="http://www.yl1001.com/group_article/4741418367938189.htm">一览社区</a>技术问答邀请嘉宾。国内优秀的富有开源精神的移动应用开发者，善于交流，乐于分享。曾担任移动开发项目经理，负责团队项目管理；电影《<a href="http://baike.baidu.com/view/8784406.htm">天籁：一万年以后</a>》新媒体推广产品经理，负责电影推广营销事项。</p>

<p>个人标签：创业者、技术宅<br>
关注主题：移动应用开发、新媒体营销、商业思考、项目管理、学习力。<br></p>

<h2 id="section-1">你可能知道我</h2>
<hr>
<p>也许你很早之前就用过我做的软件：校园E站。在国内的众多高校中都有自己的校园网视频与校园软件中心，这些软件都是基于一个叫云窗的服务器软件共享，然而这个云窗的客户端却是不折不扣的弹窗广告客户端。校园E站通逆向分析云窗下载接口，完全替代云窗下载软件和在线观影。<br>
或者如果你是一枚程序猿，你可能知道在OSChina开源中国上的热门的Android开源框架<a href="https://github.com/kymjs/KJFrameForAndroid">KJFrameForAndroid</a>和<a href="http://git.oschina.net/kymjs/KJPush">KJPush</a>。KJFrameForAndroid也是被OSChina评选为2014中国<a href="http://www.oschina.net/news/58727/2014-top-50-gitosc-projects">最受欢迎</a>的开源软件之一。它们已经成为了我的代表作。<br></p>

<h2 id="section-2">联系方式</h2>
<hr>
<p>一般我在网上用「kymjs」这个ID进行交流。<br>
可以通过电子邮件跟我联系：<a href="http://blog.kymjs.com/about/kymjs@gmail.com">kymjs@gmail.com</a><br>
另外，你还可以通过以下方式找到我：<br>
* 开源实验室：<a href="http://www.kymjs.com/">http://www.kymjs.com</a> <br>
* QQ群：<a href="http://jq.qq.com/?_wv=1027&k=WoM2Aa">257053751</a>， <a href="http://jq.qq.com/?_wv=1027&k=MBVdpK">201055521</a><br>
* 微信公众号：Android技术分享<br> <img src="./about_files/qrcode.jpg" alt="Android技术分享"><br></p>

      <footer class="entry-meta">
        张涛 was last modified on <span class="entry-date date modified"><time datetime="2015-03-15">2015-03-15</time></span>
        <span class="author vcard fn">张涛</span>
        
      </footer>
    </div><!-- /.entry-content -->
    
  </article>
</div><!-- /#main -->

<div class="footer-wrapper">
  <footer role="contentinfo">
    <span>© 2015 张涛. Powered by <a href="http://jekyllrb.com/">Jekyll</a>  using the <a href="http://mademistakes.com/">HPSTR Theme</a>  modified by <a href="http://www.github.com/kymjs/">kymjs</a>.</span>
<!-- mathjax config similar to math.stackexchange -->
<script type="text/x-mathjax-config;executed=true">
MathJax.Hub.Config({
  jax: ["input/TeX", "output/HTML-CSS"],
  tex2jax: {
    inlineMath: [ ['$', '$'] ],
    displayMath: [ ['$$', '$$']],
    processEscapes: true,
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
  },
  messageStyle: "none",
  "HTML-CSS": { preferredFont: "TeX", availableFonts: ["STIX","TeX"] }
});
</script>
<script src="./about_files/MathJax.js" type="text/javascript"></script>

<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "//hm.baidu.com/hm.js?62fb2eac2e2ed3754f9fceffd89ce83a";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

  </footer>
</div><!-- /.footer-wrapper -->

<script src="./about_files/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="/assets/js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
<script src="./about_files/scripts.min.js"></script>




<a style="position:fixed;bottom:5px;right:5px;font-size:4em;" href="http://blog.kymjs.com/about/#" title="返回顶部">
           <i class="icon-circle-arrow-up"></i>
</a> 

<link rel="stylesheet" href="http://blog.kymjs.com/assets/js/plugins/prettify/prettify.css">
<script src="./about_files/prettify.js"></script>
<script type="text/javascript">
  $(function(){
    $("pre").addClass("prettyprint");
    prettyPrint();
  });
</script>          



</body></html>